﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
using WPFSchematics.Definition.Shapes;
using WPFSchematics.Definition.Models;

namespace WPFSchematics.Definition.Common
{
    public interface IExtendCommand:IDisposable
    {
        /// <summary>
        /// 初始化。
        /// </summary>
        /// <param name="application"></param>
        void Initialize(IApplication application);
        /// <summary>
        /// 命令类型
        /// </summary>
        ExtendCommandType CommandType { get; }
        /// <summary>
        /// 命令标识
        /// </summary>
        string Identifier { get; }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="Parameter"></param>
        void Executed(ICommandParameter parameter);
        /// <summary>
        /// 
        /// </summary>
        ExecutedRoutedEventHandler Execute { get; }
        /// <summary>
        /// 
        /// </summary>
        CanExecuteRoutedEventHandler CanExecute { get; }

    }

    public enum ExtendCommandType
    {
        Command,
        MouseTool

    }
}
